--- // 月別・年度別アーカイブ(/kodaira/events/2026-11/、/kodaira/events/r8/ など)。 // 行事予定のデータ(src/data/schedule/*.json)から、その期間の予定だけを静的に生成する。 import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; import ScheduleTable from '@/components/ScheduleTable.astro'; import { fiscalYearKeys, fiscalYearLabel, fiscalYearOf, monthCounts, monthKeys, monthLabel, monthsInFiscalYear, rowsInFiscalYear, rowsInMonth, } from '@/lib/schedule-months'; import { SCHEDULE_BASE_PATH } from '@/data/schedule/config'; export function getStaticPaths() { return [ ...monthKeys.map((key, i) => ({ params: { period: key }, props: { kind: 'month' as const, key, prev: monthKeys[i - 1] ?? null, next: monthKeys[i + 1] ?? null, }, })), ...fiscalYearKeys.map((key, i) => ({ params: { period: key }, props: { kind: 'fiscal' as const, key, prev: fiscalYearKeys[i - 1] ?? null, next: fiscalYearKeys[i + 1] ?? null, }, })), ]; } const { kind, key, prev, next } = Astro.props as { kind: 'month' | 'fiscal'; key: string; prev: string | null; next: string | null; }; const label = kind === 'fiscal' ? fiscalYearLabel(key) : monthLabel(key); const periodLabel = (period: string) => kind === 'fiscal' ? fiscalYearLabel(period) : monthLabel(period); const meetingRows = kind === 'fiscal' ? rowsInFiscalYear(key, 'meeting') : rowsInMonth(key, 'meeting'); const eventRows = kind === 'fiscal' ? rowsInFiscalYear(key, 'event') : rowsInMonth(key, 'event'); // 年度ページでは、その年度の月別ページへの一覧も並べる。 const months = kind === 'fiscal' ? monthsInFiscalYear(key) : []; const url = (period: string) => `${SCHEDULE_BASE_PATH}${period}/`; ---

← 小平市のイベント・行事予定カレンダー(今後)に戻る

{label}の小平市のイベントと、審議会等・市議会の開催予定です。開催日が過ぎたものも記録として掲載しています。 変更になることがありますので、各問い合わせ先へご確認ください。

{ kind === 'fiscal' && ( ) } { meetingRows.length > 0 && ( <>

審議会等・市議会の開催予定

) } { eventRows.length > 0 && ( <>

イベント

) } { kind === 'month' && ( ) }